#include <QThread>



#include <QDebug>
// #include <QScopedPointer>

#include <memory>
using namespace std;

#include <opencv2/opencv.hpp>
using namespace cv;

#include <sensor_msgs/image_encodings.h>
#include <image_transport/image_transport.h>
#include <cv_bridge/cv_bridge.h>

#include "ThreadObject.h"

class CaptureThread : public ThreadObject
{
	Q_OBJECT
public:
	CaptureThread(int argc, char** argv, const std::string &name);
	void run();
	void init();

	void msgReceivedCallback(const sensor_msgs::ImageConstPtr& msg);

signals:
    void signalFrameAvailable(const Mat &);


private:
	class Private;
	shared_ptr<Private> m_pPrivate;
};